]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
padOsd: strengthen ring/strip label creation
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 12 Jul 2017 20:38:31 +0000 (22:38 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Fri, 14 Jul 2017 20:20:48 +0000 (22:20 +0200)
If the padOsd is given a nonexistent ring/strip, things would fail
badly later when trying to paint a 0x0 StLabel. Just avoid creating
more ring/strip labels than those known by libwacom.

This is unlikely to happen, but seems better to protect against it.

https://bugzilla.gnome.org/show_bug.cgi?id=782033

js/ui/padOsd.js

index bdc381f9d5d2aea7066b0303741561138fe071aa..7358b00fb0422440d99f51cf5d6ed3f9b5bada59 100644 (file)
@@ -685,11 +685,17 @@ const PadOsd = new Lang.Class({
         }
 
         for (i = 0; i < padDevice.get_n_rings(); i++) {
+            let [found] = this._padDiagram.getRingLabelCoords(i, CW);
+            if (!found)
+                break;
             this._createLabel(Meta.PadActionType.RING, i, CW);
             this._createLabel(Meta.PadActionType.RING, i, CCW);
         }
 
         for (i = 0; i < padDevice.get_n_strips(); i++) {
+            let [found] = this._padDiagram.getStripLabelCoords(i, UP);
+            if (!found)
+                break;
             this._createLabel(Meta.PadActionType.STRIP, i, UP);
             this._createLabel(Meta.PadActionType.STRIP, i, DOWN);
         }